home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
data
/
fapx
/
fapxmain.plt
< prev
next >
Wrap
Text File
|
1993-07-08
|
13KB
|
423 lines
/************************************************************************
* *
* nifty Full Auto Pilot eXtended V4 *
* *
* All Right Reserved, Copyright(c) Yama-chan 1991-1993 *
* (Hiroaki Yamada NIFTY-ID PEE01244) *
* All Right Reserved, Copyright(c) 北狐 1991 *
* (Yuse Okabe NIFTY-ID NAH01244) *
* All Right Reserved, Copyright(c) モップ 1991 *
* (Masahiro Kezuka NIFTY-ID PFF00570) *
* All Right Reserved, Copyright(c) るぱん 1991 *
* (Kunio Yamaguchi NIFTY-ID MHB01736) *
* All Right Reserved, Copyright(c) -なる-☆ 1992-1993 *
* (Tetsuo Hayakawa NIFTY-ID PGA01332) *
* All Right Reserved, Copyright(c) フェイス 1992-1993 *
* (Izumi Yoshinaga NIFTY-ID NCD03175) *
* All Right Reserved, Copyright(c) えんでん 1992-1993 *
* (Kazuhiko Enda NIFTY-ID GFF00430) *
* All Right Reserved, Copyright(c) コノミ 1992-1993 *
* (Yoshimi Takahashi NIFTY-ID QFH02666) *
* *
*************************************************************************
/************************************************************************
* *
* 更新履歴 *
* *
* v2.02 1991.01.05 original made by 北狐 *
* v2.改 1991.02.02 MREADコマンド対応他 by Yama-chan *
* v3.00 1991.02.23 MOPTERM v0.98対応他 *
* v4.00 1991.08.15 対話型セットアップ機能を始めとする大幅変更他 *
* v4.01 1991.08.31 ログ参照機能追加他 *
* v4.02 1991.10.17 ファイル操作機能追加他 *
* v4.03 1991.11.25 ログ参照機能にコメント作成機能追加他 *
* v4.04 1992.01.15 ファイル操作機能にNAPLPSファイル表示機能追加他 *
* v4.05 1992.04.12 MOPTERM v2.02対応他 *
* v4.06 1992.05.10 ログイン前の一時的設定変更処理追加他 *
* v4.07 1992.09.04 FMサークルディスクサービス用カストマイズ版 *
* v4.08 1992.09.22 アップロード/ダウンロード制御ファイル更新機能追加他 *
* v4.09 1992.11.08 オープニング画面表示機能追加他 *
* v4.10a 1992.12.18 パティオ対応 *
* 自由行動中の他オートパイロット呼出し機能追加 *
* by えんでん *
* v4.10b 1993.01.03 NAPLPS天気予報対応 by -なる-☆ *
* v4.10c 1993.01.30 NIFTY巡回時間帯指定追加 by フェイス *
* 天気予報都市指定機能追加 *
* FAPXSET.PLPファイル分割(FAPXSETM,FAPXSETW) *
* FAPXUPLD.PLPファイル分割(FAPXUPL2) *
* デバッグモードフラグ追加 *
* v4.10d 1993.01.30 バグ修正(v4.10cでのレベルダウン) *
* v4.10e 1993.02.04 UST2(forum),GUEST(hp)コマンド指定追加 *
* FAPXUSET.PLPファイル分割(FAPXUUPD,FAPXUADD) *
* v4.10f 1993.02.07 バグ修正(v4.10eでのレベルダウン) *
* UST2(forum),GUEST(hp)コマンド指定変更 *
* v4.10g 1993.02.10 バグ修正 *
* v4.10h 1993.02.14 エラー対処強化(ドライブアクセス不能) *
* 強制実行機能追加 by フェイス *
* フォーラム入会/未読調整機能追加 *
* by -なる-☆ *
* v4.10i 1993.02.19 バグ修正(今週のお知らせ) *
* v4.10j 1993.02.24 フォーラム入会時お知らせを読む機能追加 *
* by -なる-☆ *
* 通信メニュー順序変更 *
* バグ修正(プロフィールアップ処理,メールタイトルリスト処理)*
* v4.10k 1993.02.27 バグ修正 *
* v4.10l 1993.02.28 バグ修正 *
* v4.10m 1993.03.02 バグ修正 *
* v4.10n 1993.03.07 バグ修正(パティオへの自動アップロード処理) *
* v4.10o 1993.03.12 バグ修正(NAPLPS天気予報確認処理) *
* 通信開始指定時刻初期値設定処理追加 *
* バグ修正(再ログイン処理) *
* バグ修正(パティオへの自動アップロード処理) *
* v4.10p 1993.03.13 バグ修正(受信メール参照機能) *
* バグ修正(v4.10oでのレベルダウン) *
* バグ修正(パティオへの自動アップロード処理) *
* v4.10q 1993.03.21 FAPXRTC.PLP機能強化 by フェイス *
* バグ修正(v4.10pでのレベルダウン) *
* 天気予報確認処理のエラー対策強化 *
* by コノミ *
* バグ修正(NAPLPSメール参照機能) *
* v4.10r 1993.03.23 バグ修正(NAPLPSメール送信機能) *
* 天気予報確認処理の待ち時間長時間化 *
* v4.10r+ 1993.04.09 バグ修正(圧縮ログファイル更新処理) *
* *
*************************************************************************/
/* FAPXのV/L */
%VerLev {4.10r};
%VL {410r};
/* DUBUG MODE */
%DEBUG {No};
/************************************************************************
* 定数・変数領域の指定 *
*************************************************************************/
/* ID & PASSWORD */
var ID [8];
var PassWord[8];
/* 電話番号 */
var ROAD1 [80];
var ROAD2 [80];
var ROAD3 [80];
/* モデムコマンド及びダイアルタイプ */
var MODEM [40];
var DIAL [1];
/* ディレクトリ */
var TEMP [64];
var LOG [64];
var UP [64];
var SOUND [64];
var TEMP2 [64];
var LOG2 [64];
var SOUND2 [64];
var UP2 [64];
/* ログファイル作成モード */
var LOGmode [8];
/* NIFTYにおける処理 */
var NIFTY [1536];
/* 画面背景色 */
var R [3];
var G [3];
var B [3];
/* オプションスイッチ */
var BELFIL [64];
var VBELL [3];
var NATTOU [3];
var CLICK [3];
var TAB [2];
var LOCK [3];
var OAK [5];
/* 保存ファイルの圧縮指定 */
var COMPRESS[3];
var ARCHIVER[64];
/* 設定ファイルのパス名 */
var SETFILE [64];
var NIFFILE [64];
var SETFILE1[64];
var SETFILE2[64];
/* オンライン処理フラグ */
var DONIFTY [5];
var LIMIT [4];
var UPDOWN [5];
var MAILDOWN[8];
var MAILDEL [3];
var CHKSDL [3];
var READNEW [3];
var CHKBILL [6];
var FMNEWS [3];
var WEATHER [3];
var AREA [1];
var CITY [1];
var START [3];
var REDIAL [4];
var AP3 [3];
/* 変数の定義 */
var AM3 [6]; /* 夜間自動実行フラグ */
var ACCESS [5]; /* 通信開始時刻 [HH:MM] */
/* ウェイト時間の設定 */
%Wtime1 10; /* モデム応答待ち時間 */
%Wtime2 60; /* NIFTYプロンプト待ち時間 */
%Wtime4 60; /* select入力待ち時間 */
/* ベルコード */
var BELL [1];
/* 各種設定フラグ */
var OPENING [3]; /* オープニング画面表示 */
var FAPXEND [8]; /* 自動通信終了時処理 */
var UPDOWN [5]; /* アップ・ダウンロード処理実行タイミング */
var FMGR [64]; /* ファイルマネージャパイロットファイル名 */
var UST2CMD [5]; /* UST2コマンド実行フラグ */
var GUESTCMD[5]; /* GUESTコマンド実行フラグ */
/************************************************************************
* 共通処理モジュール *
************************************************************************/
/* 音声メッセージ出力処理 */
%SNDMSG {
[file]
case(SOUND2={}||SOUND2={\},
{No},{case(@filechk(SOUND2|file),
{Yes},{snd(SOUND2|file)},{No}, {display(BELL)})},
{Yes},{display(BELL)}
);
};
%PLTSTOP{
SNDMSG({owata_f.snd});
display({\nオートパイロットFAPX}|VerLev|{を停止しました\n});
stop;
};
%AUTOEND{
footnote({オートパイロットの終了処理をしています});
display({\nNIFTYとの通信を終了しました\n});
SNDMSG({owata_f.snd});wait(2);
};
/* パラメタで指定されたディレクトリへ移動する(「A:\」と「A:」の両方が可能) */
%setcdir2{
[dir]
setcdir(@case(@nochar(dir),2,{im(dir|{\})},,{im(dir)}));
};
/* 指定されたディレクトリー配下に,第2パラメターで指定されたディレクトリを
(もし,無ければ)作成する。 */
%mkdir {
[dir,name]
dispoff(!DEBUG);
case(@setcdir2(dir),
{Yes},{command({mkdir }|name)},
{No},{select({装置(}|dir|{)が使えませんが?},
Wtime4,{},
{ もう一回やってみる },{mkdir(dir,name)},
{ 自動処理をやめる },{stop},
{ 無視して先の処理をやる },{})}
);
dispoff({No})
};
/* 指定されたディレクトリーを(もし,無ければ)作成する。 */
%mkdir2 {
[dir]
case(@setcdir2(dir),
{No},{case(@nochar(dir)==2,
{Yes},
{display({装置(}|dir|{)が使えません\n});
SNDMSG({okasi_f.snd})},
{No},
{mkdir2(@body(dir,,{\}));
mkdir(@body(dir,,{\}),@tail(dir,{\}))});
});
};
/* n番目の部分文字列をとりだす関数 */
%nth {
[str,n,sep]
var a [256];
var m [3];
a:=str;
m:=0;
case (n<1,
{Yes},{im({})},
{No},
{loop ({
m:=m+1;
case(m==n||a={},{Yes},{im({No})},
{No},{a:=@body(a,sep);im({Yes})});
});
im(@head(a,sep));
});
};
/* 現在の日付・時刻を得る 「yyyy-mm-dd (曜) hh:mm:ss」 */
%getdt {
%dt @daylong;
%week @case(@getchar(dt,12,3),
{Sun},{im({日})},{Mon},{im({月})},{Tue},{im({火})},
{Wed},{im({水})},{Thu},{im({木})},{Fri},{im({金})},
{Sat},{im({土})},,{im({ })});
im(@getchar(dt,1,4)|{-}|@getchar(dt,6,2)|{-}|@getchar(dt,9,2)|
{ (}|week|{) }|@getchar(dt,16,8));
};
/* 指定されたファイルを yymmddnn.* にリネームして指定されたディレクトリにコピーする */
%renfile{
[file,path]
var n [2];
var file2 [12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
n:=-1;
mkdir2(path);setcdir2(path);
loop ({
n:=n+1;
case(@nochar(n)=1,{Yes},{n:={0}|n});
case(@body(file,{.})={},
{Yes},{file2:=date|n},
{No}, {file2:=date|n|{.}|@tail(file,{.})});
case(@filechk(file2)={No}||n==99,
{Yes},{im({No})},{No},{im({Yes})});
});
copyfile(file,file2);
im(file2);
};
/* 指定されたファイルを MddHmmss.* にリネームして指定されたディレクトリにコピーする */
%nowfile2{
[file,path]
var file2 [12];
%d @getdt;
%mm @case(@getchar(d,6,2),
{01},{im({1})},{02},{im({2})},{03},{im({3})},
{04},{im({4})},{05},{im({5})},{06},{im({6})},
{07},{im({7})},{08},{im({8})},{09},{im({9})},
{10},{im({a})},{11},{im({b})},{12},{im({c})});
%dd @getchar(d,9,2);
%hh @case(@getchar(d,17,2),
{01},{im({1})},{02},{im({2})},{03},{im({3})},
{04},{im({4})},{05},{im({5})},{06},{im({6})},
{07},{im({7})},{08},{im({8})},{09},{im({9})},
{10},{im({a})},{11},{im({b})},{12},{im({c})},
{13},{im({d})},{14},{im({e})},{15},{im({f})},
{16},{im({g})},{17},{im({h})},{18},{im({i})},
{19},{im({j})},{20},{im({k})},{21},{im({l})},
{22},{im({m})},{23},{im({n})},{00},{im({0})});
%mmss @getchar(d,20,2)|@getchar(d,23,2);
case(@body(file,{.})={},
{Yes},{file2:=mm|dd|hh|mmss},
{No}, {file2:=mm|dd|hh|mmss|{.}|@body(file,{.})});
mkdir2(path);setcdir2(path);copyfile(file,file2);im(file2);
};
/* 指定されたディレクトリに yymmddnn.* というファイルを作成する */
%crefile{
[path,sfx]
var n [2];
var file1 [12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
mkdir2(path);setcdir2(path);
n:=-1;
loop ({
n:=n+1;
case(@nochar(n)=1,{Yes},{n:={0}|n});
case(sfx={},
{Yes},{file1:=date|n},{No},{file1:=date|n|{.}|sfx});
case(@filechk(file1)={No}||n==99,
{Yes},{im({No})},{No},{im({Yes})});
});
im(file1);
};
/* 全てのメモをクローズする */
%CloseAllMemo{
case(@mlast!=0 && @mcheck==0,{Yes},{mopen(@mlast)});
case(@mcheck!=0,{Yes},{loop({mclose(2);im(@mcheck!=0)})});
};
/* 初期設定 */
%init {
case(OAK={},{Yes},{setoak({J})},{No},{setoak(OAK)});
case(NATTOU={Yes}||NATTOU={No},{Yes},{nattou(NATTOU)});
case(CLICK={Yes}||CLICK={No},{Yes},{click(CLICK)});
case(R<>{}&&G<>{}&&B<>{},{Yes},{backclr(R,G,B)});
case(VBELL={Yes}||VBELL={No},{Yes},{visibell(VBELL)});
case(@tail(BELFIL,{.}),
{snd},{bellfile(BELFIL)},{SND},{bellfile(BELFIL)});
case(TAB<>{},{Yes},{tab(TAB)});
case(TEMP={},{Yes},{TEMP:=CDIR});
case(@nochar(TEMP)==3,{No},{TEMP2:=TEMP|{\}},{Yes},{TEMP2:=TEMP});
case(TEMP<>{}&&@setcdir2(TEMP)={No},{Yes},{mkdir2(TEMP)});
case(LOG={},{Yes},{LOG:=CDIR});
case(@nochar(LOG)==3,{No},{LOG2:=LOG|{\}},{Yes},{LOG2:=LOG});
case(LOG<>{}&&@setcdir2(LOG)={No},{Yes},{mkdir2(LOG)});
case(UP={},{Yes},{UP:=TEMP});
case(@nochar(UP)==3,{No},{UP2:=UP|{\}},{Yes},{UP2:=UP});
case(UP<>{}&&@setcdir2(UP)={No},{Yes},{mkdir2(UP)});
case(@nochar(SOUND)==3,
{No},{SOUND2:=SOUND|{\}},{Yes},{SOUND2:=SOUND});
case(REDIAL={},{Yes},{REDIAL:={9999}});
};
/* 指定されたファイルマネージャを起動する */
%FILEMGR{
case(FMGR,{},{setcdir(CDIR);#FAPXFILE.PLP},
,{setcdir(@body(FMGR,,{\}));%fmgr @read(FMGR);fmgr});
};
/************************************************************************/
/* 以下メインモジュール */
/************************************************************************/
/* カレントディレクトリセット*/
%CDIR @getcdir;
%CDIR2 @case (@nochar(CDIR)==3,{Yes},{im(CDIR)},{No},{im(CDIR|{\})});
#FAPXINIT.PLP;
loop ({
SNDMSG ({erande_f.snd});
footnote({処理を選択してください});
setcdir(CDIR);
select ({処理を選択してください << FAPX}|VerLev|{ >>},
Wtime4*10,{im({Yes})},
{ NIFTYと通信を行う },
{napend;AM3:={No};#FAPXONLN.PLP;im({Yes})},
{ 各種の設定を行う },
{napend;#FAPXSET.PLP;init;im({Yes})},
{ NIFTYでの処理の設定 },
{napend;#FAPXNIF.PLP;im({Yes})},
{ 設定ファイルの読み込み },
{napend;#FAPXSCHG.PLP;im({Yes})},
{ 受信ログを読む },
{napend;#FAPXVIEW.PLP;im({Yes})},
{ ファイル操作を行う },
{napend;FILEMGR;im({Yes})},
{ 他のオートパイロットを実行する },
{napend;#FAPXPLTX.PLP;im({Yes})},
{ FAPX v}|VerLev|{の説明 },
{napend;#FAPXHELP.PLP;im({Yes})},
{ FAPXを終了する },
{napend;im({No})}
);
});
display({\nオートパイロットFAPX}|VerLev|{を終了しました\n});
footnote({});